package com.wd.jetpack.util.log4j;

import android.os.Environment;

import com.wd.jetpack.util.Logger;

import org.apache.log4j.Level;

import java.io.File;
import java.io.IOException;

public class AppLogger {
    private static boolean isInitConfig = false;

    /**
     * 私有构造器
     */
    public static void initConfig() {
        if (!isInitConfig) {
            AppLogConfigurator logConfiger = new AppLogConfigurator();
            File dir = Environment.getExternalStoragePublicDirectory("dmb01");
            if (!dir.exists()) {
                if (!dir.mkdirs()) {
                    Logger.INSTANCE.e("创建路径失败");
                }
            }
            // 设置Log4j的输出路径文件夹
            String rootPath = dir.getPath() + "/logs";
            File dirFile = new File(rootPath);
            if (!dirFile.exists()) {
                dirFile.mkdirs();
            } // 文件夹准备
            String fileName = rootPath + File.separator + "all.log";
            File file = new File(fileName);
            if (!file.exists()) {
                try {
                    file.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            // 其实这下面可以做成一个生成器的设计模式
            logConfiger.setFileName(fileName);  // 设置文件名字
            logConfiger.setLevel(Level.DEBUG); // 设置调试等级

            logConfiger.setUseFileAppender(true); // 设置用户文件输出器
            logConfiger.setFilePattern("%d [%t] %p %c - %m%n"); // 设置文件输出模式
            logConfiger.setImmediateFlush(true); // 设置是否立即刷新
            logConfiger.setInternalDebugging(false);
            logConfiger.setMaxBackupSize(5); // 设置最大备份数量
            logConfiger.setMaxFileSize(10 * 1024 * 1024); // 设置最大文件数量

            logConfiger.setUseLogCatAppender(true);
            logConfiger.setLogCatPattern("%m%n");
            logConfiger.configure();


            isInitConfig = true;
        }
    }
}
